﻿Namespace EfiBase

    Public Class Metodos

        Public Function SubstituiCaracter(ByVal info As String) As String
            Dim novotexto As String = Nothing
            Dim x As Integer = 0
            Dim c As String = Nothing
            Dim ref As String = Nothing

            If info = Nothing Then

                Return Nothing

            End If

            For x = 0 To info.Trim.Length - 1

                ref = info.Substring(x, 1)

                Select Case ref

                    Case Is = "Á", "À", "Ã", "Â", "Ä"
                        c = "A"
                    Case Is = "É", "È", "Ê", "Ë"
                        c = "E"
                    Case Is = "Í", "Ì", "Î", "Ï"
                        c = "I"
                    Case Is = "Ó", "Ò", "Õ", "Ô", "Ö"
                        c = "O"
                    Case Is = "Ú", "Ù", "Û", "Ü"
                        c = "U"
                    Case Is = "Ç"
                        c = "C"
                    Case Is = "Ñ"
                        c = "N"
                    Case Is = "Ý"
                        c = "Y"
                    Case Is = "'"
                        c = "´"
                    Case Else
                        c = ref
                End Select

                novotexto = novotexto & c

            Next

            Return novotexto

        End Function

        Public Function DescFase(ByVal id As String) As String
            Dim msg As String = ""

            Select Case id
                Case Is = "M"
                    msg = "MONOFÁSICA"
                Case Is = "B"
                    msg = "BIFÁSICA"
                Case Is = "T"
                    msg = "TRIFÁSICA"
            End Select

            Return msg

        End Function

        Public Function ClasseConsumo(ByVal id As String) As String
            Dim msg As String = ""

            Select Case id
                Case Is = "A"
                    msg = "RURAL"
                Case Is = "C"
                    msg = "COMERCIAL"
                Case Is = "I"
                    msg = "INDUSTRIAL"
                Case Is = "L"
                    msg = "ILUMINAÇÃO PÚBLICA"
                Case Is = "P"
                    msg = "PODER PÚBLICO"
                Case Is = "R"
                    msg = "RESIDENCIAL"
                Case Is = "S"
                    msg = "SERVIÇO PÚBLICO"
            End Select

            Return msg

        End Function

        Public Function Municipio(ByVal id As Integer) As String
            Dim msg As String = ""

            Select Case id
                Case Is = 1
                    msg = "ARAUÁ-SE"
                Case Is = 2
                    msg = "BOQUIM-SE"
                Case Is = 3
                    msg = "CRISTINÁPOLIS-SE"
                Case Is = 4
                    msg = "RIACHÃO DO DANTAS-SE"
                Case Is = 5
                    msg = "ESTÂNCIA-SE"
                Case Is = 6
                    msg = "TOMAR DO GERU-SE"
                Case Is = 7
                    msg = "ITABAIANINHA-SE"
                Case Is = 8
                    msg = "INDIAROBA-SE"
                Case Is = 9
                    msg = "SANTA LUZIA-SE"
                Case Is = 10
                    msg = "PEDRINHAS-SE"
                Case Is = 11
                    msg = "TOBIAS BARRETO-SE"
                Case Is = 12
                    msg = "UMBAÚBA-SE"
                Case Is = 13
                    msg = "JANDAÍRA-BA"
                Case Is = 14
                    msg = "RIO REAL-BA"
            End Select

            Return msg

        End Function

        Public Function MotivoDesligamento(ByVal id As Integer) As String
            Dim msg As String = ""

            Select Case id
                Case Is = 1, 6
                    msg = "UC Desligada por Débito"
                Case Is = 2
                    msg = "UC Desligada a Pedido"
                Case Is = 3
                    msg = "UC com Irregularidade de Consumo"
                Case Is = 4
                    msg = "UC Sem Medidor"
                Case Is = 5
                    msg = "Desligamento Técnico"
                Case Is = 7
                    msg = "UC Demolida"
                Case Is = 8
                    msg = "UC Deslig. por Ordem Judicial"
                Case Is = 9
                    msg = "Cabos Roubados"
                Case Is = 10
                    msg = "UC Deslig. por Irregularidade"
                Case Is = 11
                    msg = "Duplicidade de Serviço"
                Case Is = 12
                    msg = "UC com Padrão Danificado"
                Case Is = 13
                    msg = "UC com Desligamento à Revelia"
                Case Is = 14
                    msg = "Forn. de Energia a Terceiros"
                Case Is = 15, 18
                    msg = "Deslig. de Lig. Provisória"
                Case Is = 16, 20
                    msg = "UC com Deficiência Técnica"
                Case Is = 17
                    msg = "UC Deslig. com Encerramento de Contrato"
                Case Is = 19
                    msg = "Não Interessa o Religamento"
            End Select

            Return msg

        End Function

        Public Function OcorrenciaLeitura(ByVal id As Integer) As String
            Dim msg As String = ""

            Select Case id
                Case Is = 1
                    msg = "Casa Fechada"
                Case Is = 2
                    msg = "Casa Vazia - Desabitada"
                Case Is = 3
                    msg = "Existem Insetos"
                Case Is = 4
                    msg = "Cachorro Solto"
                Case Is = 5
                    msg = "Proibido Entrada de Leiturista"
                Case Is = 6
                    msg = "Consumidor Não Localizado"
                Case Is = 7
                    msg = "Sem Acesso ao Medidor"
                Case Is = 8
                    msg = "Leitura Impedida Cadeado"
                Case Is = 9
                    msg = "Padrão Entrada Inseguro"
                Case Is = 10
                    msg = "Medidor Substituído"
                Case Is = 14
                    msg = "Casa sem Medidor"
                Case Is = 15
                    msg = "Medição Interna"
                Case Is = 20
                    msg = "Virada Medidor"
                Case Is = 22
                    msg = "Consumidor Rural"
                Case Is = 23
                    msg = "Consumidor Fora Rota"
                Case Is = 24
                    msg = "Quadro medição Cadeado"
                Case Is = 40
                    msg = "Chave Vizinho"
                Case Is = 59
                    msg = "Caixa de medição sem lacre"
                Case Is = 60
                    msg = "Medidor Sem Lacre"
                Case Is = 61
                    msg = "Medidor Retirado Ligado Direto"
                Case Is = 62
                    msg = "Casa Demolida Medidor Deixado"
                Case Is = 63
                    msg = "Medidor Defeito Parado"
                Case Is = 64
                    msg = "Medidor Voltando a Leitura"
                Case Is = 65
                    msg = "Medidor Numero Diferente"
                Case Is = 66
                    msg = "Constante Medidor Errada"
                Case Is = 67
                    msg = "Fornecendo a Terceiros"
                Case Is = 68
                    msg = "Suspeita de Fraude"
                Case Is = 69
                    msg = "Ligação Clandestina"
                    'Case Is = 93
                    '    msg = "Registrar Foto"
                Case Is = 95
                    msg = "Sem Leitura - Consumo por Média"
                Case Is = 96
                    msg = "Leitura por Média"
                Case Is = 97
                    msg = "Analise > Mínimo"
                Case Is = 98
                    msg = "Analise > Repetir"
                Case Is = 99
                    msg = "Analise > Manter"
            End Select

            Return msg

        End Function

        Public Function GetListOcorrencias(ByVal i1 As Integer, ByVal i2 As Integer, ByVal i3 As Integer) As List(Of String)

            Dim list As New List(Of String)

            list.Add("")
            list.Add("01-Casa Fechada")
            list.Add("02-Casa Vazia - Desabitada")
            list.Add("03-Existem Insetos")
            list.Add("04-Cachorro Solto")
            list.Add("05-Proibido Entrada de Leiturista")
            list.Add("06-Consumidor Não Localizado")
            list.Add("07-Sem Acesso ao Medidor")
            list.Add("08-Leitura Impedida Cadeado")
            list.Add("09-Padrão Entrada Inseguro")
            list.Add("10-Medidor Substituído")
            list.Add("14-Casa sem Medidor")
            list.Add("15-Medição Interna")
            list.Add("20-Virada Medidor")
            list.Add("22-Consumidor Rural")
            list.Add("23-Consumidor Fora Rota")
            list.Add("24-Quadro medição Cadeado")
            list.Add("40-Chave Vizinho")
            list.Add("59-Caixa de medição sem lacre")
            list.Add("60-Medidor Sem Lacre")
            list.Add("61-Medidor Retirado Ligado Direto")
            list.Add("62-Casa Demolida Medidor Deixado")
            list.Add("63-Medidor Defeito Parado")
            list.Add("64-Medidor Voltando a Leitura")
            list.Add("65-Medidor Numero Diferente")
            list.Add("66-Constante Medidor Errada")
            list.Add("67-Fornecendo a Terceiros")
            list.Add("68-Suspeita de Fraude")
            list.Add("69-Ligação Clandestina")
            'list.Add("93-Registrar Foto")

            If i1 > 0 Then

                list.RemoveAt(i1)

            End If

            If i2 > 0 Then

                list.RemoveAt(i2)

            End If

            If i3 > 0 Then

                list.RemoveAt(i3)

            End If

            Return list

        End Function

        Public Function ValorDecimalTruncar(ByVal numCasasDec As Integer, ByVal vl As Double) As Double

            'Converte o valor informado com o devido nº de casas decimais
            Dim base
            Dim calc

            base = 10 ^ numCasasDec

            calc = vl * base

            Return Fix(calc) / base

        End Function

        Public Function ValorDecimalArred(ByVal numCasasDec As Integer, ByVal vl As Double) As Double

            'Converte o valor informado com o devido nº de casas decimais
            Dim base
            Dim calc

            base = 10 ^ numCasasDec

            calc = vl * base

            Return CLng(calc) / base

        End Function

    End Class

End Namespace